const { defineConfig } = require("@vue/cli-service");
const path = require("path");
function resolve(dir) {
  return path.resolve(dir);
}
//获取当前的环境 console.log(process.env.NODE_ENV)
// console.log(process.env.NODE_ENV)
module.exports = defineConfig({
  //配置生产环境
  //构建项目一定要加这个属性
  //非常关键不然打包没用
  publicPath: ".",
  transpileDependencies: true,
  lintOnSave: false,
  //开发服务器配置
  devServer: {
    port: 5200, //设置项目端口号
    host: "0.0.0.0", //允许所有的主机访问当前项目
    proxy: {
      "/api": {
        //正则匹配到以这个开头的时候 就用代理
        target: process.env.VUE_APP_BASEURL, //指向的是目标服务器
        //路径重写
        //当我们匹配到/api把我们的路径重写成""
        pathRewrite: {
          "^/api": "",
        },
      },
    },
  },
  //别名配置
  chainWebpack: (config) => {
    config.resolve.alias
      .set("&", resolve("src"))
      .set("assets", resolve("src/assets"))
      .set("components", resolve("src/components"))
      .set("layout", resolve("src/layout"))
      .set("base", resolve("src/base"))
      .set("static", resolve("src/static"));
    //hash打包配置 一般使用版本号+时间戳
    //这就保证服务器请求到新页面刷新的方式
    config.output
      .filename(
        `assets/js/[name].${process.env.VUE_APP_VERSION}.${+new Date()}.js`
      )
      .chunkFilename(
        `assets/js/[name].${process.env.VUE_APP_VERSION}.${+new Date()}.js`
      )
      .end();
  },
});

/**
 * 跨域的解决方案
 * 在项目根目录建一个vue.config.js
 * 配置完设置之后,一定要重启项目 配置完设置之后,一定要重启项目 配置完设置 之后,一定要重启项目!!!!!
 *
 *
 * 1、后端响应头
 * 2、vue代理的方式
 * 3、浏览器插件
 * 4、jsop
 */

/**
 * 服务器代理客户端
 * 服务器代理服务器  ngix
 *
 */

/**
 * 配置别名
 *
 */
